package com.ruoyi.training.domain;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 班级学员明细对象 class_student
 *
 * @author WorrilessGo
 * @date 2025-09-24
 */
@Data
public class ClassStudent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 班级学员表ID（主键） */
    private String classStudentId;

    /** 培训班ID（外键，关联training_class表） */
    @Excel(name = "培训班ID", readConverterExp = "外=键，关联training_class表")
    private String trainingClassId;

    /** 学员ID（关联学员表） */
    @Excel(name = "学员ID", readConverterExp = "关=联学员表")
    private String studentId;

    /** 报名ID（关联报名记录表） */
    @Excel(name = "报名ID", readConverterExp = "关=联报名记录表")
    private String registrationId;

    /** 项目ID（关联项目表） */
    @Excel(name = "项目ID", readConverterExp = "关联项目表")
    private String projectId;

    /** 考试安排ID（关联考试安排表） */
    @Excel(name = "考试安排ID", readConverterExp = "关联考试安排表")
    private String examScheduleId;

    /** 报名项目ID列表 */
    @Excel(name = "报名项目ID列表")
    private String registeredProjectIds;

    /** 学员应缴金额 */
    @Excel(name = "学员应缴金额")
    private String amountPayable;

    /** 学员实缴金额 */
    @Excel(name = "学员实缴金额")
    private String actualAmountPayable;

    /** 职务  */
    @Excel(name = "职务")
    private String positionRank;

    /** 满意度调查填写情况(1-已填写，0-未填写)  */
    @Excel(name = "满意度调查填写情况(1-已填写，0-未填写)")
    private String satisfactionSurveyStatus;

    /** 考试状态(0-未排考，1-已排考) */
    @Excel(name = "考试状态(0-未排考，1-已排考)")
    private String examStatus;

    /** 逻辑移除学员（0-在班，2-已移除） */
    @Excel(name = "逻辑移除学员", readConverterExp = "0=-在班，2-已移除")
    private Long isRemoved;

    public void setClassStudentId(String classStudentId)
    {
        this.classStudentId = classStudentId;
    }

    public String getClassStudentId()
    {
        return classStudentId;
    }

    public void setTrainingClassId(String trainingClassId)
    {
        this.trainingClassId = trainingClassId;
    }

    public String getTrainingClassId()
    {
        return trainingClassId;
    }

    public void setStudentId(String studentId)
    {
        this.studentId = studentId;
    }

    public String getStudentId()
    {
        return studentId;
    }

    public void setRegistrationId(String registrationId)
    {
        this.registrationId = registrationId;
    }

    public String getRegistrationId()
    {
        return registrationId;
    }

    public void setRegisteredProjectIds(String registeredProjectIds)
    {
        this.registeredProjectIds = registeredProjectIds;
    }

    public String getRegisteredProjectIds()
    {
        return registeredProjectIds;
    }

    public String getExamStatus() {
        return examStatus;
    }

    public void setExamStatus(String examStatus) {
        this.examStatus = examStatus;
    }

    public void setIsRemoved(Long isRemoved)
    {
        this.isRemoved = isRemoved;
    }

    public Long getIsRemoved()
    {
        return isRemoved;
    }

    public String getAmountPayable() {
        return amountPayable;
    }

    public void setAmountPayable(String amountPayable) {
        this.amountPayable = amountPayable;
    }

    public String getActualAmountPayable() {
        return actualAmountPayable;
    }

    public void setActualAmountPayable(String actualAmountPayable) {
        this.actualAmountPayable = actualAmountPayable;
    }

    public String getPositionRank() {
        return positionRank;
    }

    public void setPositionRank(String positionRank) {
        this.positionRank = positionRank;
    }

    public String getSatisfactionSurveyStatus() {
        return satisfactionSurveyStatus;
    }

    public void setSatisfactionSurveyStatus(String satisfactionSurveyStatus) {
        this.satisfactionSurveyStatus = satisfactionSurveyStatus;
    }

    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public String getExamScheduleId() {
        return examScheduleId;
    }

    public void setExamScheduleId(String examScheduleId) {
        this.examScheduleId = examScheduleId;
    }

    @Override
    public String toString() {
        return "ClassStudent{" +
                "classStudentId='" + classStudentId + '\'' +
                ", trainingClassId='" + trainingClassId + '\'' +
                ", studentId='" + studentId + '\'' +
                ", registrationId='" + registrationId + '\'' +
                ", registeredProjectIds='" + registeredProjectIds + '\'' +
                ", amountPayable='" + amountPayable + '\'' +
                ", actualAmountPayable='" + actualAmountPayable + '\'' +
                ", positionRank='" + positionRank + '\'' +
                ", satisfactionSurveyStatus='" + satisfactionSurveyStatus + '\'' +
                ", examStatus='" + examStatus + '\'' +
                ", isRemoved=" + isRemoved +
                '}';
    }
}
